package cn.gok.interceptor;

import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * @Author: LKSV
 * @Description:
 * @Date:Created in 17:27 2021/7/28
 */
@Component
public class LoginInterceptor implements HandlerInterceptor {
    public boolean preHandle(HttpServletRequest request,
                             HttpServletResponse response,
                             Object handler)throws Exception {
//        HttpSession session=request.getSession();

//        String obj=(String)session.getAttribute("password");
        String s = request.getParameter("password");

//        System.out.println("====================="+obj);
        System.out.println("================"+s);
        if(s==""){    //为空表示未登录，重定向到登录页面
            request.getRequestDispatcher("/views/student.jsp").forward(request,response);
//            response.sendRedirect("index.jsp");
            return false;
        }
        return true;//已经登录，可以继续后面的请求
    }


    /**
     该方法的作用是进行处理器拦截用的，它的执行时间是在处理器进行处理之 后，
     也就是在Controller的方法调用之后执行，但是它会在DispatcherServlet进行视图的渲染之前执行，
     也就是说在这个方法中你可以对ModelAndView进行操作。

     */
    public void postHandle(HttpServletRequest request,
                           HttpServletResponse response,
                           Object handler,
                           ModelAndView modelAndView) throws Exception {

    }

    /**
     1、整个请求结束以后执行。可进行一些资源清理工作（清除一些不需要的对象，回收内存空间），
     一般认为对视图进行了forward，就认为是完成请求处理，
     */
    public void afterCompletion(HttpServletRequest request,
                                HttpServletResponse  response,
                                Object handler,
                                Exception ex)throws Exception {

    }
}
